Type Error Slicing in Implicitly Typed Higher-Order Languages
نویسندگان
چکیده
Previous methods have generally identified the location of a type error as a particular program point or the program subtree rooted at that point. We present a new approach that identifies the location of a type error as a set of program points (a slice) all of which are necessary for the type error. We describe algorithms for finding minimal type error slices for implicitly typed higher-order languages like Standard ML.
منابع مشابه
Challenges of a type error slicer for the SML language
SML (a higher-order function-oriented imperative programming language) depends on automated inference of sophisticated type information. Existing implementations have confusing type error messages. Type error slicing gives the programmer more helpful type error information: (1) It identifies all program points that contribute to a type error rather than blaming just one point. (2) It exhibits a...
متن کاملPhantom Types
Phantom types are data types with type constraints associated with different cases. Examples of phantom types include typed type representations and typed higher-order abstract syntax trees. These types can be used to support typed generic functions, dynamic typing, and staged compilation in higher-order, statically typed languages such as Haskell or Standard ML. In our system, type constraints...
متن کاملFirst-Class Phantom Types
Classical phantom types are datatypes in which type constraints are expressed using type variables that do not appear in the datatype cases themselves. They can be used to embed typed languages into Haskell or ML. However, while such encodings guarantee that only wellformed data can be constructed, they do not permit type-safe deconstruction without additional tagging and run-time checks. We in...
متن کاملException Handlers as Extensible Cases
Exceptions are an indispensable part of modern programming languages. They are, however, handled poorly, especially by higherorder languages such as Standard ML and Haskell: in both languages a well-typed program can unexpectedly fail due to an uncaught exception. In this paper, we propose a technique for type-safe exception handling. Our approach relies on representing exceptions as sums and a...
متن کاملProgramming in higher-order typed lambda-calculi
Typed A-calculi have been objects of theoretical study for many years. Recently, it has been shown that all the inductively defined types (including numbers, booleans, lists, and trees, as well as more complex structures like typed terms and proofs) can be represented in higher-order A-calculi with no built-in types or type constructors. This raises the possibility of designing practical progra...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Sci. Comput. Program.
دوره 50 شماره
صفحات -
تاریخ انتشار 2003